#ifndef SEGMENTATION_H
class SegmentedObject;
#define SEGMENTATION_H

#include <QImage>
#include <QList>
#include <QDebug>
#include <QColor>
#include "SegmentedObject.h"
#include "Transformations.h"

/**
  * This class represents a segmented image.
  */
class Segmentation
{

private :
        QImage * image;

        QList<SegmentedObject *> * segmentedObjects;

public :
        /**
          * Segmentation constructor.
          *
          */
        Segmentation(QImage * img);

        /**
          * Segmentation destructor.
          */
        ~Segmentation();

        /**
          * Returns the segmented objects list.
          *
          * @return Segmented objects list.
          */
        QList<SegmentedObject *> * getSegmentedObjects() const;

        /**
          * Insert a new SegmentedObject into the SegmentedObjects list.
          *
          * @param segmObj New segmented object to insert into the segmentation.
          */
        void addSegmentedObject( SegmentedObject * segmObj );

        /**
          * Set the QImage associated to the Segmentation.
          *
          * @param img Segmented image.
          */
        void setImage( QImage * img );

        QImage * getImage();

        QImage * getRegionImage(bool useImageBackground, QColor color);
};

#endif // SEGMENTATION_H
